1. Field of the Invention
The present invention relates to a communication device that exchanges packets with a network and more particularly, to a communication device that migrates an extension function between a plurality of function execution modules.
2. Description of the Related Art
Recently, with increasing use of computing resources using a network represented by cloud computing and multimedia use of the network, it has been requested to provide various services on the network. Under such circumstances, a function of providing various services by cooperation of a network device and a computer or other network device has been mounted generally on the network device. In addition, hardware for a packet transfer process is mounted generally on the network device to realize high performance of the network device. However, it is difficult for the hardware to flexibly correspond to the function of providing the various services.
As technology for adding a function to the network device on which the hardware is mounted, JP 2002-281072 A is known. JP 2002-281072 A discloses “a function execution module 62 executing an extension function is connected to a high-speed routing module 32 capable of executing a routing process by hardware, so that a function extension module 6 is configured. As a result, even when a packet having new address information is generated by processing of packet data by the function execution module 62, high-speed performance of a routing process for selecting a new routing destination of the packet and transferring the packet is maintained by the connected routing module 32 and a function extension by a scalable function extension module is enabled by connecting a plurality of function execution modules 62.” (refer to ABSTRACT).
Meanwhile, use of virtual machine technology has increased to flexibly use the computing resources. As migration technology for migrating a virtual machine over a processor in a system using the virtual machine to correspond to a load change, US 2012/0324442, US 2010/0211946, and JP 2002-215408 A are known.
US 2012/0324442 discloses that a processor executes a process for mapping network switching functions of each of a plurality of virtual machines to a hardware network device (refer to ABSTRACT).
US 2010/0211946 discloses “the invention relates to networking and more specifically, to a method and system for network abstraction and virtualization for a single OS. The method according to the invention includes, in a network device including a single OS, a single or plurality of resources, and software operated at the outside of the single OS, abstracting the plurality of hardware resources to ensure compatibility between the plurality of hardware resources including the single OS. An embodiment will be described using FIG. 2A. FIG. 2A is a block diagram illustrating architecture 200 for hardware abstraction and virtualization for a single OS, in accordance with an embodiment of the invention. For example, the architecture 200 for the hardware abstraction and the virtualization for the single OS supports hardware resource abstraction or virtualization of a single OS. As illustrated in FIG. 2A, the architecture 200 includes hardware resources 202, an abstraction layer 204, an OS 206, a software partition 208, a plurality of virtual network interface controller drivers 210a, . . . , and 210n, a software switching module 220, a physical network driver 222, and a physical storage driver 224. Next, the hardware resources 202 correspond to one or more physical elements or subsystems in the network device. The hardware resources 202 can configure a physical network interface controller and correspond to a networking subsystem in the network device or an element thereof.” (refer to ABSTRACT).
JP 2002-215408 A discloses “individual I/O adapters and partitions are provided with a scheduling mechanism to control allocation of an I/O adapter to a partition in time division, a mechanism to allocate an I/O adapter to a partition in space division, and a mechanism with which a partition control program dynamically changes the allocations. The individual I/O adapters and partitions are further provided with a mechanism to measure input/output performance for each partition and a mechanism to store SLA of a user program, on the basis of the performance for each partition.” (refer to ABSTRACT).